/*
 * @Author: chen haoxuan
 * @Date: 2021-05-17 15:47:25
 * @LastEditTime: 2021-05-21 20:55:38
 */
// 运算符重载
// 运算符重载实质上是函数的重载
// 函数类型 operator 运算符名称(形参表)
// {对运算符的重载处理}
#include<iostream>
using namespace std;
class Complex
{
    public:
        Complex(){real=0;imag=0;}
        Complex(double r,double i){real=r;imag=i;}
        Complex operator+(Complex &c2);             // 声明重载运算符
        void display();
    private:
        double real;
        double imag;
};
Complex Complex::operator+(Complex &c2)
{
    Complex c;
    c.real=real+c2.real;
    c.imag=imag+c2.imag;
    return c;
}
void Complex::display()
{
    cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main()
{
    Complex c1(3,4),c2(5,-10),c3;
    c3=c1+c2;
    cout<<"c1=";c1.display();
    cout<<"c2=";c2.display();
    cout<<"c1+c2=";c3.display();
    system("pause");
    return 0;
}